[[path]].ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // API 代理 - 将 /api/* 请求转发到后端服务
  2. const API_BASE = 'https://tg-live-game-api.ifoodme.com';
  3. export const onRequest: PagesFunction = async (context) => {
  4. const { request } = context;
  5. const url = new URL(request.url);
  6. // 构建目标 URL: /api/auth/login -> https://tg-live-game-api.ifoodme.com/api/auth/login
  7. const targetUrl = `${API_BASE}${url.pathname}${url.search}`;
  8. // 复制请求头,移除 host
  9. const headers = new Headers(request.headers);
  10. headers.delete('host');
  11. headers.set('origin', API_BASE);
  12. // 转发请求
  13. const response = await fetch(targetUrl, {
  14. method: request.method,
  15. headers,
  16. body: request.method !== 'GET' && request.method !== 'HEAD'
  17. ? request.body
  18. : undefined,
  19. });
  20. // 复制响应头
  21. const responseHeaders = new Headers(response.headers);
  22. // 添加 CORS 头
  23. responseHeaders.set('Access-Control-Allow-Origin', url.origin);
  24. responseHeaders.set('Access-Control-Allow-Credentials', 'true');
  25. return new Response(response.body, {
  26. status: response.status,
  27. statusText: response.statusText,
  28. headers: responseHeaders,
  29. });
  30. };